package br.com.sicoob.cedente.transacao;

import br.com.bancoob.cedente.util.StringBib;


public class Variaveis {
	
	// objeto de comunicacao
//	private ComunicacaoBasica comunicacao = null;
	// desafio da criptografia
	private byte[] chkAESCripto = new byte[8];

	// chave de criptografia
	private byte[] chvAESCripto = new byte[16];

	// aleatorio
	private byte[] numAleatorio = new byte[64];

	// id atm
	private String idAtm = null;

	// cooperativa
	private String cooperativa = null;

	// N�mero pac
	private String numeroPac = "0";

	// terminal
	private String terminal = null;

	// id usuario
	private String idUsuario = null;

	// Numero sessao
	private String sessao = "000000000000";

	// Numero sequencial originado
	private int sequencialSessao = 0;

	// Numero sequencial chave
	private int sequencialTerminal = 0;

	public byte[] getChkAESCripto() {
		return chkAESCripto;
	}

	public void setAESChkChvCripto(byte[] hash) {
		System.arraycopy(hash, 0, chkAESCripto, 0, 8);
		System.arraycopy(hash, 8, chvAESCripto, 0, 16);
	}

	public byte[] getChvAESCripto() {
		return chvAESCripto;
	}

	public String getCooperativa() {
		
		if (cooperativa != null) {
			cooperativa = StringBib.preencherComZeros(cooperativa, 4);
		}
		
		return cooperativa;
	}

	public void setCooperativa(String cooperativa) {
		this.cooperativa = cooperativa;
	}

	public String getIdAtm() {
		return idAtm;
	}

	public void setIdAtm(String idAtm) {
		this.idAtm = idAtm;
	}

	public byte[] getNumAleatorio() {
		return numAleatorio;
	}

	public void setNumAleatorio(byte[] numAleatorio) {
		this.numAleatorio = numAleatorio;
	}

	public String getNumeroPac() {
		
		if (numeroPac != null) {
			numeroPac = StringBib.preencherComZeros(numeroPac, 4);
		}
		
		return numeroPac;
	}

	public int getSequencialSessao() {
		return sequencialSessao;
	}

	public void incSequencialSessao() {
		sequencialSessao++;
	}

	public void setSequencialSessao(int sequencialSessao) {
		this.sequencialSessao = sequencialSessao;
	}

	public int getSequencialTerminal() {
		return sequencialTerminal;
	}

	public void incSequencialTerminal() {
		sequencialTerminal++;
	}

	public void setSequencialTerminal(int sequencialTerminal) {
		this.sequencialTerminal = sequencialTerminal;
	}

	public String getSessao() {
		return sessao;
	}

	public void setSessao(String sessao) {
		this.sessao = sessao;
	}

	public String getTerminal() {
		return terminal;
	}

	public void setTerminal(String terminal) {
		this.terminal = terminal;
	}

	/**
	 * Devolve o numero do cliente, ou seja numero do cedente.
	 * @return
	 */
	public String getIdUsuario() {
		
		if (idUsuario != null) {
			idUsuario = StringBib.preencherComZeros(idUsuario, 4);
		}
		
		return idUsuario;
	}

	public void setIdUsuario(String idUsuario) {
		this.idUsuario = idUsuario;
	}

}
